<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>运算符</title>
</head>

<body>
    <button onclick="Operator">运算</button>;
    <script>
        //算数运算符  -- ++功能：+1或者-1 
        //口诀：前++  先运算后赋值   后++  先赋值后运算

        // var i = 1;
        // document.write(++i);

        var i = 0;
        var i = ++i + ++i + i++ + ++i; //速算
        /* 
        第一个值：先运算0+1  后赋值=1  i的变量值=1
        第二个值：先运算1+1  后赋值=2  i的变量值=2
        第三个值：先赋值=2   后运算2+1 i的变量值=2
        第四个值：先运算3+1  后赋值=4  i的变量值=4
        */
        document.write("自增i结果值：" + i);
        /* 
        var j=0;
        var j=++j + j++ + ++j + j++ + ++j + j++ + ++j;
        25
        */
        var o = o++ + ++o; //没用赋值：undefined未定义+undefined未定义
        alert(o); //NAN 不是一个数字
        // isNAN()是不是一个数值，如果返回true结果不是一个数值
        //                           返回false结果是一个数值
        document.write("<br>" + "不是一个数值：" + isNaN(o)); //true
        //逻辑运算符  逻辑与(短路)&&  逻辑与(非短路)&
        // 非短路与以非短路或特点：判断逻辑不严谨
        // 短路与       口诀:一错全错 除非全对  与 并且 （两个条件必须符合）
        // 短路或       口诀:一对全对 除非全错  或 或者 （两个条件有一个符合）

        function Operator() {
            var age = 68;
            varsex = '男';
            // 逻辑与 短路与非短路特点
            if (sex == '女' && age++ > 60) { //false & true(一个成功)
                // 有运算结果:age++ 68+1  69
                document.write("短路与运算" + age);
            }
            document.write("没有运算：" + age);
        }
        /* !非 */
        var age = 12;
        var sex = '男';
        var isMan = sex == '男'; //是不是男人 true
        //是不是一个小孩
        var chi = age < 16;
        //是不是一个女孩
        var isGirl = !isMan && chi;

        /* 语法
        if(!true){}
        */
        /* 比较运算符：关系运算符 == === 结果boolean */
        var bool = 55 == '55'; //true 55=='55'
        // true原因： ==会发生隐式转换，如果数值与字符串进行比较，
        // 把字符串转换为number类型，进行比较（比较值）
        var bool = 55 === '55';
        // false原因：如果类型相同，比较地址值（比较类型）
        // alert(bool);

        /* 三目运算符 */
        /*语法：表达式boolean？true:false; 
         */
        document.write("<br>" + "<br>");
        var k = true; //boolean类型 == 判断与数值不一致
        document.write(k === 'ture' ? 1 : 2);
        /* 条件分支语句 */
        /* if(如果) 三种使用 */
        /* ①if（boolean）使用 */
        if ("abc" == "abc") {
            document.write("满足");
        }
        /* ②if(boolean){}else{}使用，满足执行语句块1，不满足执行语句块2 */
        if (100 == '100') {
            document.write("等于");
        } else {
            document.write("不等于");
        }
        document.write("<br>");
        /* ③if(boolean){}else if(boolean){}...else{默认语句块}，多个条件选择 */
        var score = 80;
        if (score == 70) {
            document.write("第一个条件满足");
        } else if (score == 60) {
            document.write("第二个条件满足");
        } else if (score == 50) {
            document.write("第三个条件满足");
        } else {
            document.write("以上条件不满足，执行我");
        }
        /* 
        案例1:从浏览器输入值,如果大于0 输出"正整数"
                                小于0输出"负整数"
                                等于0 输出"等于0"
            要求：按钮，点击按钮，弹出输入框
            prompt(); ---BOM提供 弹出输入框
         */
        function add() {
            var i = prompt("请输入数值:"); //程序bug---解决
        }
        /* 
        案例2：功能模拟
               银行业务---利率（买房贷款业务）
               基本年利率：0.065%，如果贷款1年利率5折
                                   如果贷款3年利率7折
                                   如果贷款5年以及以上按章基本年利率计算
                                   否则年利率1.1倍
                输入贷款年限，确定贷款率！
         */
        /* 
        案例3：功能模拟
               开奶茶店，自己研发一个软件
               业务：用户买0杯奶茶，不卖
                        买一杯（原价）以上奶茶，第二杯半价 
        */
    </script>
</body>

</html>